This invention relates generally to an apparatus and method for processing graphics data, and more particularly to an apparatus and method for processing multiple types of graphics pixel data for display in different environments.
Today, in order to run the many multimedia products on the market, computer systems are required to display many different types of images. A computer system may run different programs that generate different types of images at different times. For example, an application program may display graphs and charts generated by accounting programs and used to track a business' profits and losses. Later, the same computer system may run a second application program that displays other graphics data, such as Japanese kanji characters to provide instructions to a Japanese user, or the system may run a third application program that generates and displays English alphanumeric characters. In all cases, the computer system may run multiple programs that generate images unique to particular applications (i.e., generated for different environments) and users, and the computer system must be able to display these different types of images.
Conventional computer systems may use a graphics system to generate graphics and video pixel data for display on a display device. It is this pixel data that is passed to the display device and that produces the image viewed on the display device. While most computer systems can generate low-level graphics images, specialized graphics systems are used because they can process and generate a wider variety of graphics images, and can do so more quickly and efficiently.
A graphics system typically contains a graphics controller card (also called a graphics accelerator or graphics adapter card) having a graphics controller chip that can process both graphics data and video data to produce graphics and video pixel data. The graphics controller chip generally contains a graphics processing engine that processes graphics data to produce graphics pixel data, and a graphics display engine that routes graphics pixel data to a display device. Some graphics controller chips may also have a video display engine that processes and routes video pixel data to the display device. Graphics and video data must be processed differently because each type of data is formatted differently. For example, graphics data is generally in RGB format and may include a graphics data block that contains commands and data points. A command may correspond to the line-drawing function, and the data points may correspond to the endpoints of the line. The graphics processing engine may include algorithms to process this graphics data block to efficiently determine the internal points of the line and may generate pixel data corresponding to those points so that pixel data representing the complete line can be transmitted to a display device for display. The graphics display engine then transmits this pixel data to the display device.
In contrast, video data is generally in YUV format and does not include commands, but only video pixel data. The video display engine may be invoked to perform functions related to video pixel data, such as filtering the video pixel data or scaling it so that the resulting video image can fit the dimensions of the display device. In a conventional graphics system, a graphics chip can be used to process graphics data in one format for display in one environment, and video data in another format for display in another one environment; however, because the processing of each type of data may require a long sequence of instructions stored in a limited memory on the graphics controller chip, generally only one type of graphics data may be processed by each graphics controller chip to produce graphics pixel data.
More powerful computer systems may display multiple types of graphics images in different formats. For example, a system may display special graphics images for one application when the system is first turned on, and, later, different types of graphical images for different application programs invoked by the computer system. One type of graphics images may, for example, be Japanese kanji characters that may be used to lead a Japanese user through a sequence of steps when his computer is first turned on. Later, during another mode of operation, the system may display graphics images for another application, such as one in which English language text is displayed. Because these two types (i.e., sets) of graphics images may be processed differently, two graphics engines and thus two graphics controller chips may be required to process the multiple types of graphics images. For example, the first application program may generate a sequence of bits corresponding to a Japanese kanji character with its unique graphics pixel data, and the second application program may generate the same sequence of bits, but corresponding to an English alphabetic character. Thus, in different applications, the same data must be processed differently to generate unique pixel data corresponding to the image to be displayed. Because each graphics controller chip can generally process graphics data corresponding to only one format, if multiple types of graphics data are to be processed, each type must be processed by a different graphics controller chip.
When multiple graphics controller chips are used to generate graphics pixel data in various formats for various applications, the graphics controller card may use switching circuitry to switch between the outputs of the graphics controller chips to route the appropriate graphics pixel data to the display device. One conventional display apparatus uses a multiplexer to select either the output of a first graphics controller chip that processes a first type of graphics data to produce a first type of graphics pixel data, or the output of a second graphics controller chip that processes a second type of graphics data to produce a second type of graphics pixel data. In this conventional apparatus, the first graphics controller chip feeds its output to one input of the multiplexer, whose output is connected to the display device. The output of the second graphics controller chip may be fed to a display controller chip, such as an LCD controller chip, whose output may in turn be fed to a second input of the multiplexer. A display controller chip may be needed to translate pixel data to a format acceptable to the display device. This may be necessary, for example, if the first graphics controller chip cannot process internal graphics data for a particular display device, but the second graphics controller chip can. If additional graphics controller chips are used, additional display controller chips may be required. Multiplexer control signals may be used to select which output is routed to the display device.
This conventional graphics controller card for displaying multiple types of graphics pixel data is expensive, bulky, and consumes a lot of power. The additional multiplexers and display controller chips must each be placed on the limited surface area of the graphics controller card, each generating heat and adding to the delay of data processed by the graphics controller card. The outputs of the graphics controller chips must be connected to the input pins of the multiplexer, and data storage and retrieval systems used to route data within the graphics controller card must now interface with the control circuitry of the multiplexer. If additional graphics controller chips are required, larger multiplexers and additional display controller chips may be required. All of these modifications to off-the-shelf graphics controller cards require custom-made graphics controller cards, rather than less expensive, easily-adaptable, off-the-shelf graphics controller cards. Accordingly, there exists a need for an apparatus and method for processing multiple graphics data which avoids these and other problems of known apparatus and methods. It is to this end that the present invention is directed.